﻿using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Pay.TO;

namespace Pay.DTO {
	/// <summary>
	/// 代收请求
	/// </summary>
	[JsonObject(MemberSerialization.OptOut)]
	[Serializable]
	public class apply_receive : head_req {
		public apply_receive() {
			binds = new List<bind_merchant_item>();
		}
		/// <summary>
		/// 分润分配集合，可空
		/// </summary>
		public List<bind_merchant_item> binds { get; set; }
		/// <summary>
		/// 订单号
		/// </summary>
		public string order_no { get; set; }
		/// <summary>
		/// 交易金额:单位：分
		/// </summary>
		public string tran_amount { get; set; }
		/// <summary>
		/// 费率
		/// </summary>
		public decimal fee { get; set; }
		/// <summary>
		/// 结算费
		/// </summary>
		[JsonIgnore]
		public decimal settle_fee { get; set; }
		/// <summary>
		/// 通道
		/// </summary>
		public PayChannel pay_channel { get; set; }
		/// <summary>
		/// 付款－开户银行名称:no
		/// </summary>
		[JsonIgnore]
		public string bank_name { get; set; }
		/// <summary>
		/// 付款－卡号
		/// </summary>
		public string account_no { get; set; }
		/// <summary>
		/// 付款－开户姓名/公司名称:no
		/// </summary>
		[JsonIgnore]
		public string account_name { get; set; }
		/// <summary>
		/// 付款－身份证:no
		/// </summary>
		[JsonIgnore]
		public string id_card { get; set; }
		/// <summary>
		/// 服务器回调该地址
		/// </summary>
		public string notify { get; set; }
		/// <summary>
		/// 收款－开户银行名称
		/// </summary>
		public string rcv_bank_name { get; set; }
		/// <summary>
		/// 收款－卡号
		/// </summary>
		public string rcv_account_no { get; set; }
		/// <summary>
		/// 收款－开户姓名/公司名称
		/// </summary>
		public string rcv_account_name { get; set; }
		/// <summary>
		/// 收款－身份证
		/// </summary>
		public string rcv_id_card { get; set; }

		/// <summary>
		/// 结算TO
		/// </summary>
		[JsonIgnore]
		public string settle_type { get { return "T0"; } }
		/// <summary>
		/// 支付方式：默认GENCYFUND
		/// </summary>
		[JsonIgnore]
		public string pay_code { get { return "GENCYFUND"; } }
		/// <summary>
		/// 支付类型：默认AgencyFund
		/// </summary>
		[JsonIgnore]
		public PayType pay_type { get { return PayType.AgencyFund; } }
		/// <summary>
		/// 第三方处理单号
		/// </summary>
		[JsonIgnore]
		public string transaction_no { get; set; }
	}
}
